package single;

/**
 * 单例模式-枚举式（线程安全）
 *
 * 是否 Lazy 初始化：否
 * 是否多线程安全：是
 *
 * 描述：这种实现方式还没有被广泛采用，但这是实现单例模式的最佳方法。
 * 它更简洁，自动支持序列化机制，绝对防止多次实例化。
 * 这种方式是 Effective Java 作者 Josh Bloch 提倡的方式，它不仅能避免多线程同步问题，
 * 而且还自动支持序列化机制，防止反序列化重新创建新的对象，绝对防止多次实例化。
 * 不能通过 reflection attack 来调用私有构造方法。
 * 
 * @author lihaoshan
 * @date 2018-06-15
 * */
public enum SingletonEnum {

    INSTANCE;

    public void whateverMethod() {
    }

    public void showMessage(){
        System.out.println("showMessage：Hello ENUM");
    }
}
